﻿#ifndef _SPATIALDATABASE_DATAMETAINFOS_H
#define _SPATIALDATABASE_DATAMETAINFOS_H

#include "udatabase/dll_cfg.h"
#include "udatabase/interface/idatametainfos.h"


namespace FD{
	namespace Utility{
		namespace DB{
		   ///<summary>
		   ///数据集元信息集合
		   ///</summary>
            class FD_DB_Export CDataMetaInfos : public FD::Utility::DB::Interface::IDataMetaInfos
            {
            private:
                std::vector<FD::Utility::DB::Interface::IDataMetaInfo*> mInfos;

            public:
				/// <summary>
				/// 析构函数
				/// </summary>
				/// <param name=""></param>
				/// <returns></returns>
                virtual ~CDataMetaInfos();
				/// <summary>
				/// 构造函数
				/// </summary>
				/// <param name=""></param>
				/// <returns></returns>
                CDataMetaInfos();
            public:
				/// <summary>
				/// 获取数据集元信息的个数
				/// </summary>
				/// <param name=""></param>
				/// <returns>数据集元信息的个数</returns>
                virtual UINT32 getCount() const;
				/// <summary>
				/// 获取索引为index处的数据集元信息
				/// </summary>
				/// <param name="index">索引号</param>
				/// <returns>数据集元信息</returns>
                virtual FD::Utility::DB::Interface::IDataMetaInfo* getInfo(UINT32 index) const;
				/// <summary>
				/// 添加数据集元信息
				/// </summary>
				/// <param name="info">索引信息对象</param>
				/// <returns>数据集元信息的个数</returns>
                virtual UINT32 add(const FD::Utility::DB::Interface::IDataMetaInfo* ref_info);
				/// <summary>
				/// 移除索引为index处的数据
				/// </summary>
				/// <param name=""></param>
				/// <returns>数据集元信息的个数</returns>
                virtual UINT32 remove(INT32 index);
				/// <summary>
				/// 删除所有的数据集元信息
				/// </summary>
				/// <param name=""></param>
				/// <returns>0</returns>
                virtual UINT32 clear();

            }; 
			} //end namespace
        }
    
}

#endif
